<?php
/**
*
* Alle functies die met het filter te maken hebben.
* Deze functies worden in functies.php geincluded.
*
*
*/

/**
*
* test of het filter voor de ingelogde gebruiker aan staat
*
*	@param string ingelogde gebruiker
* @return boolean true/false
*
*/
function filter_aan($naam) {
	$sql = "SELECT filter FROM gebruikers WHERE naam = '$naam'";
	//PRINT "$sql";
	connectdb();
	$res = mysql_query($sql) or die ("Query op $naam niet gelukt");
	$resultaat=mysql_fetch_array($res);
	$filter_aan = $resultaat[0];
	//echo "Filter aan = $filter_aan<br />"; #debug
	if ($filter_aan==1) {
		return true;
	} else {
		return false;
	}
}

/**
*
* Wisselt de status van het filter voor de ingelogde gebruiker
*
*	@param string ingelogde gebruiker
* @param string aan/uit
* @return void
*
*/

function flip_filter($naam,$switch) {
	if ($switch =="aan") {
		$s = 1;
	} else {
		$s = 0;
	}
	$sql = "UPDATE gebruikers SET filter = $s WHERE naam = '$naam'";
	connectdb();
	$res = mysql_query($sql) or die ("Filterswitch niet gelukt");
}


/**
*
* maakt voor de ingelogde gebruiker een (veranderde) view aan.
*
*	@param string ingelogde naam gebruiker
* @param string de query achter de view
* @return void
*
*/
function maak_filter($naam,$sql) {
	//print "<br />De opslag query voor de view is: $sql<br />"; #debug
	connectdb();
	$res = mysql_query($sql) or die ("View kon niet worden aangemaakt.");

}

/**
*
* slaat filter als string op in de gebruikerstabel.
*
*	@param string ingelogde naam gebruiker
* @param string de representatie van het filter
* @return void
*
*/
function noteer_filter($naam, $filter) {
	//print "<br />De update query voor de filter is:<br />"; # debug
	$sql = "update gebruikers set filterstring = '$filter' where naam = '$naam'";
	connectdb();
	$res = mysql_query($sql) or die ("Filter kon niet worden genoteerd.");
}


/**
*
* toont het gedefinieerde filter voor de ingelogde gebruiker
*
*	@param string ingelogde naam gebruiker
* @return void
*
*/

function rapporteer_filter($naam) {
	$sql = "SELECT filterstring FROM gebruikers WHERE naam = '$naam'";
	//print "$sql";
	connectdb();
	$res = mysql_query($sql) or die ("Filter kon niet worden genoteerd.");
	$filterrij = mysql_fetch_array($res);
	$filterstring = $filterrij[0];
	$filter = array();
	$filter = explode(";",$filterstring);
	print"<table class=\"sjabloonzoeker\">";
	foreach ($filter as $value) {
		list($i,$v)=preg_split("/ = /",$value);
		if ($i=="RelatieveVoortgang") {
			$i = "Relatieve Voortgang";
			$v = $v."%";
		} elseif ($i=="RelatieveVoortgang_not") {
			$i = "Relatieve Voortgang is niet";
			$v = $v."%";
		} elseif ($i=="RelatieveVoortgang_lt") {
			$i = "Relatieve Voortgang is kleiner dan";
			$v = $v."%";
		} elseif ($i=="RelatieveVoortgang_gt") {
			$i = "Relatieve Voortgang is groter dan";
			$v = $v."%";
		}
		
		
		
		print "<tr><td classs=\"prompt\">$i</td><td >$v</td></tr>";
	}
	print "</table>";
}

function rapporteer_filter_beknopt($naam) {
	$sql = "SELECT filterstring FROM gebruikers WHERE naam = '$naam'";
	//print "$sql";
	connectdb();
	$res = mysql_query($sql) or die ("Filter kon niet worden genoteerd.");
	$filterrij = mysql_fetch_array($res);
	$filterstring = $filterrij[0];
	$filter = array();
	$filter = explode(";",$filterstring);
	$melding="filter = ";
	//toon_lijst($filter);
	if (!empty($filterstring)) {
		foreach ($filter as $value) {
			list($i,$v)=preg_split("/ = /",$value);
			$koppelstring = " | ";
			$vpatroon = '/^vestiging \([0-9]\)$/'; # toevoeging cijfer deel essentieel
			$vreplace = "vestiging ";
			$i=preg_replace($vpatroon,$vreplace,$i);
			if ($i="vestiging ") {
				$koppelstring = " of ";
			}
			if ($i=="RelatieveVoortgang") {
				$i = "Relatieve Voortgang";
				$v = $v."%";
			} elseif ($i=="RelatieveVoortgang_not") {
				$i = "Relatieve Voortgang is niet";
				$v = $v."%";
			} elseif ($i=="RelatieveVoortgang_lt") {
				$i = "Relatieve Voortgang is kleiner dan";
				$v = $v."%";
			} elseif ($i=="RelatieveVoortgang_gt") {
				$i = "Relatieve Voortgang is groter dan";
				$v = $v."%";
			}
			
			$melding .= " ".$i."=<b>".$v."</b> $koppelstring ";
		}
		print "<br><span class=\"filterstring\">$melding</span>";
	}
}

/**
*
* rapport in een array het filter van de gebruiker.
*
*	@param string ingelogde naam gebruiker
* @return array filterstring ('veldnaam','waarde')
*
*/

function filter2array($naam) {
	$sql = "SELECT filterstring FROM gebruikers WHERE naam = '$naam'";
	//print "$sql";
	connectdb();
	$res = mysql_query($sql) or die ("Filter kon niet worden genoteerd.");
	$filterrij = mysql_fetch_array($res);
	$filterstring = $filterrij[0];
	$filterlijst = array();
	if (strlen($filterstring)>1) {
		$filter = array();
		$filter = explode(";",$filterstring);

	
		// DEZE CODE MOET GEOPTIMALISEERD WORDEN
		foreach ($filter as $value) {
			$regel = preg_split('/ = /',$value);
			$i = $regel[0];
			$v = $regel[1];
		
			// Dit patroon is niet goed!!
			$patroon = "#^vestiging \(\d\)$#";
			if (preg_match($patroon,$i)) {
				$v = trim($v);
				$filterlijst['vestiging'][]=$v;
			} 
			$filterlijst[$i]=$v;
		}
	}
	//toon_lijst($filterlijst,"Filterlijst:"); #debug
	return $filterlijst;

}



function filterknop() {
	$pagina=$_SERVER['SCRIPT_NAME'];
	if (filter_aan($_SESSION['naam'])) {
		echo "<h6><a href=\"$pagina?filteren=ja\">filter <u>uit</u> zetten </a>";
	} else {
		echo "<h6><a href=\"$pagina?filteren=ja\">filter <u>aan</u> zetten </a>";
	}
	echo "<a href=\"filter_switch.php\">| Bewerk filter</a></h6>";

}

function check_filter($naam) {
	$sql = "SELECT filterstring FROM gebruikers WHERE naam = '$naam'";
	//print "$sql";
	connectdb();
	$res = mysql_query($sql) or die ("Filter kon niet worden genoteerd.");
	$filterrij = mysql_fetch_array($res);
	if (empty($filterrij)) {
		//noteer dan de gewone string als filterstring.
		$SQL = "SELECT A.Id, A.Actief, A.Activiteit, A.ParentId, A.Vestiging, P.Programma, R.Resultaatgebied, A.GereedJaar, A.GereedMaand, A.RelatieveVoortgang, A.Status, A.Indiener, A.Eigenaar"; 
		$SQL .= " FROM DSF_activiteit A, resultaatgebied R, programma P, afdelingen AFD"; 
		$SQL .= " WHERE A.IdResultaatgebied = R.Id AND A.IdProgramma = P.Id AND A.IdAfdeling = AFD.Id AND A.actief = \"ja\""; 
		$SQL .= "	ORDER BY A.Id ASC";
		maak_filter($naam,$sql);
		
	}
}





?>
